//! 整数比较函数
//! 
//! 从C版本转换的整数比较工具模块

/// 比较两个整数指针指向的值是否相等
///
/// # 参数
/// * `location1` - 第一个整数引用
/// * `location2` - 第二个整数引用
///
/// # 返回值
/// * `true` - 两个值相等
/// * `false` - 两个值不相等
pub fn int_equal(location1: &i32, location2: &i32) -> bool {
    location1 == location2
}

/// 比较两个整数指针指向的值的顺序
///
/// # 参数
/// * `location1` - 第一个整数引用
/// * `location2` - 第二个整数引用
///
/// # 返回值
/// * `-1` - 第一个值小于第二个
/// * `0` - 两个值相等
/// * `1` - 第一个值大于第二个
pub fn int_compare(location1: &i32, location2: &i32) -> i32 {
    if location1 < location2 {
        -1
    } else if location1 > location2 {
        1
    } else {
        0
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_int_equal() {
        let a = 1;
        let b = 1;
        let c = 2;
        assert!(int_equal(&a, &b));
        assert!(!int_equal(&a, &c));
    }

    #[test]
    fn test_int_compare() {
        let a = 1;
        let b = 2;
        assert_eq!(int_compare(&a, &b), -1);
        assert_eq!(int_compare(&b, &a), 1);
        assert_eq!(int_compare(&a, &a), 0);
    }
}

